direnv is an extension for your shell that automatically loads and unloads environment variables based on the current directory by checking for .envrc or .env files. This allows for project-specific settings, such as 12factor app variables or deployment secrets, without cluttering global profile files.
- Supports multiple shells including bash, zsh, fish, tcsh, elvish, powershell, murex, and nushell.
- Language-agnostic design implemented as a fast, single static executable.
- Uses sub-shells to safely capture environment changes for the active shell session.
Gemini CLI extensions can now define settings that the user will be prompted to provide upon installation, ensuring extensions have exactly what they need to function from the moment you install them. This post details the benefits of extension settings, provides a practical example with the AlloyDB extension, and explains how to define settings as an author and manage them with the config command.
CircuitPython 8.0.0 introduces support for environment variables. Environment variables are commonly used to store “secrets” such as Wi-Fi passwords and API keys. This method does not make them secure. It only separates them from the code.
CircuitPython uses a file called settings.toml at the drive root (no folder) as the environment. User code can access the values from the file using os.getenv(). It is recommended to save any values used repeatedly in a variable because os.getenv() will parse the settings.toml file contents on every access.